package com.lottery.game.core.modules.service.app.v2;

import com.lottery.game.core.modules.entity.user.GameUser;

import java.util.Map;

/**
 *
 * 对签名 以及token 和 ticket 的生成做 接口定义
 *
 */
public interface PassportService {

    /***
     *
     *
     * 获取一个零时登录秘钥的 token ，传入一个 openid 生成一个 零时的登录秘钥。
     *
     * @param openid 用户  id
     *
     */
    String getToken(String openid);

    /**
     * 通过用户获取token
     * @param user
     * @return
     */
    String getToken(GameUser user);


    /**
     *
     *
     * 获取一个零时登录秘钥的 token ，传入一个 openid 生成一个 零时的登录秘钥。
     *
     * @param openid 用户  id
     *
     * @param ticketTimeOut 在交换token 的 时候就指定  ticket 的 超时时间
     *
     */
    String getToken(String openid, Long ticketTimeOut);

    /**
     * 登陆获取token
     * @param username
     * @param password
     * @return
     */
    String login(String username, String password);


    /**
     *
     * 验证 token 失败抛出异常 成功则 ：return token Map
     *  @param token
     *
     * */
    Map<String, Object> checkToken(String token) ;

}
